Matlab Программа поиска ЗАДАННОГО слова в тексте на картинке

Решаем на заказ! Matlab Программа поиска ЗАДАННОГО слова в тексте на картинке

Заказать работу
Узнать стоимость

ПРИМЕРЫ РЕШЕНИЙ

Matlab. Программа поиска ЗАДАННОГО слова в тексте на картинке.
Можем Выполнить для Вас подобную или другую работу, пишите в ВК или Телеграм.











% Программа поиска слова в графическом изображении текста v1.0
clc;        % Очистка командного окна
clear all;  % Очистка всех переменных 
% Начинаем цикл обслуживания меню выбора файла для анализа
mc=0;
while mc<2
    mc=menu('SeLect fiLe with text:','1. TeXt-Line.jpg','2. TeXt-CuRve.jpg','Exit ProgRamm');
    % Если нажали нижнюю кнопку
    if mc==3
        break; % Прерывание цикла и выход из программы
    end;
    close all;  % Закрытие всех ранее открытых граф. окон
    switch mc % Выбор вариантов загрузки файлов
        case 1 
            A=imread('TeXt-Line.jpg');
        case 2
            A=imread('TeXt-CuRve.jpg');
    end;    % Конец Выбора вариантов загрузки файлов
    % Если изображение цветное и матрица А - трёхмерная
    if size(A,3)>0 
        S=rgb2gray(A); % переводим изображение из цветного в серое
    else % Если матрица А имеет два измерения
        S=A; 
    end;
    clear A;
    figure(1); % Вызов 1-го графического окна
    imshow(S); % Отображение серого рисунка
    %axis('ij');
    axis('equal'); % Задаём равномасштабные оси координат 
    % Приглашение выделить фрагмент текста
    title('SeLect text fragment with Up-case SymboLs:'); 
    [x,y]=ginput(2);        % Ввод мышкой вершин прямоугольника выделения
    x=round(x); y=round(y); % Округляем координаты до целых
    B=S(min(y):max(y),min(x):max(x)); % Запоминаем выделенный фрагмент
    figure(2);
    imshow(B); % Отображение серого рисунка выделенного фрагмента
    %axis('ij');
    axis('equal'); % Задаём равномасштабные оси координат 
    hold on;
    % Ищем в столбцах выделенного фрагмента 
    % чёрный отрезок максимальной длины 
    [mb,nb]=size(B); % Размерности массива B
    mmax=0; % Начальное значение максимального размера шрифта
    for i=1:nb
        m=0; % Инициируем счётчик числа небелых элементов в столбце
        for j=1:mb
            if B(j,i)<214 % Если текущий элемент НЕ БЕЛЫЙ
                % начинаем считать все последующие за ним 
                % в направлении оси OY НЕ БЕЛЫЕ элементы
                m=m+1;
                % Запоминаем полученное число, если оно больше 
                % текущего максимального размера шрифта
                mmax=max([mmax,m]); 
            else % Если цепочка не белых элементов обрывается 
                m=0; % Обнуляем счётчик числа не белых элементов в столбце
            end;
            % Отображаем координаты последней проанализированной точки 
            title(strcat('Row i=',num2str(i),', CoLumn j=',num2str(j),', Font Size=',num2str(mmax))); 
            pause(0.001);
        end;
        plot([i i],[1 mb],'b'); 
    end;
    hold off;
    imshow(B); % Отображение серого рисунка искомого фрагмента
    title(strcat('Row i=',num2str(i),', CoLumn j=',num2str(j),', Font Size=',num2str(mmax))); 
    axis('equal');
    figure(1); % Вызов 1-го графического окна
    title(strcat('SeLect text fragment for SeaRch with Font Size=',num2str(mmax))); 
    y(1)=0; y(2)=50;
    % Пока ширина (высота) выделенного фрагмента 
    % больше, чем размер шрифта + 7п.п. продолжаем впроцедуру выделения
    while abs(y(1)-y(2))>mmax+7 
   

тут фрагмент удален. Можем для Вас написать подобную программу. Пишите в ВК или Телеграм. 

 
            mk=menu('To wide catch!!! Repite SeLection!!!','Ok');
        else
            title('Text fragment was SeLected!');
            break;
        end;
    end;
    clear B; % Очищаем переменную B
    S=abs(255-S);
    B=S(min(y):max(y),min(x):max(x)); % Запоминаем выделенный фрагмент
    [mb,nb]=size(B); % Размерности массива B
    [ms,ns]=size(S); % Размерности массива S
    %figure(2);
    %hold on;
    %title(strcat('Row i=',num2str(i),', CoLumn j=',num2str(j),', Font Size=',num2str(mmax))); 
    %imshow(B); % Отображение серого рисунка выделенного фрагмента
    %axis('equal'); % Задаём равномасштабные оси координат 
    %hold off;
    mk=menu('StaRt SeaRch fragment:','1. Yes','2. No');
    % Если нажали Yes, то начинаем поиск заданного фрагмента: 
    if mk==1 
    C=xcorr2(S,B); 
    [mC,nC]=max(C);
    [Zmax,m]=max(mC);
    n=nC(m);
    Zmin=min(min(C));
    figure(3);
    hold on;
    %axis('auto'); 
    axis([1 ns 1 ms Zmin Zmax]);
    grid on;
    [X,Y]=meshgrid(1:ns,1:ms);
    mesh(X,Y,C(fix(mb/2)+1:ms+fix(mb/2),fix(nb/2)+1:ns+fix(nb/2)));
    for i=1:10
        view(0-60/10*i,90-(90-40)/10*i);
        pause(0.01);
    end;
    plot3([m m],[n n],[Zmin Zmax],'ok--','LineWidth',2)
    plot3([1 m],[n n],[Zmin Zmin],'ok--','LineWidth',2)
    plot3([m m],[1 n],[Zmin Zmin],'ok--','LineWidth',2)
    hold off;
    figure(1);
    hold on;
    imshow(S); % Отображение инверсного рисунка
    plot([m m],[1 n],'or--','LineWidth',2)
    plot([1 m],[n n],'or--','LineWidth',2)
    hold off;
    clear mC; clear nC; 
    clear X; clear Y; 
    end;
    %clear S; clear B; clear C;
end;    % Конец цикла обслуживания меню выбора файла для анализа

Содержание:


Заказать диплом


Математика
MATLAB
СМО и GPSS
Экономика
Физика
Cопромат и теормех
Бухучет
Карта сайта

РЕШИТЬ-МАТЕМАТИКУ.РФ

Помощь на экзаменах по математике, срочное решение задач! КРУГЛОСУТОЧНАЯ консультация.